package com.zlyx.easy.core.model;

import java.lang.reflect.Field;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.zlyx.easy.core.utils.LogUtils;

/**
 * @Auth 赵光
 * @Describle
 * @2019年7月7日 下午10:48:54
 */
public class JsonModel{

	@Override
	public String toString() {
		return JSON.toJSONString(this);
	}
	
	/**
	 * 解析参数map并给当前对象的同名属性设值
	 * @param paramMap
	 */
	public void parse(Map<String, Object> paramMap) {
		try {
			Field[] fields = this.getClass().getDeclaredFields();
			String name = null;
			for(Field field :fields) {
				name = getName(field);
				if(paramMap.containsKey(name)) {
					field.setAccessible(true);
					field.set(this, paramMap.get(name));
				}
			}
		}catch(Exception e) {
			LogUtils.err(this.getClass(), e);
		}
	}

	/**
	 * 自定义属性同名规则
	 * @param field
	 * @return
	 */
	private String getName(Field field) {
		return field.getName();
	}
}
